package com.spdd.mt.biz.manager.model.request;

import com.spdd.mt.biz.manager.model.WebRequest;
import com.spdd.mt.common.validator.Mobile;
import com.spdd.mt.common.validator.Money;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;

/**
 * 充值下单接口请求
 *
 * @since 2025年04月03日
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class OrderMakeRequest extends WebRequest {

    /** 美团商户编码 */
    @NotBlank(message = "商户编码不能为空")
    private String merchNo;

    /** 订单充值结果通知接口地址 */
    @NotBlank(message = "订单充值结果通知接口地址不能为空")
    private String notifyUrl;

    /** 美团订单号，长度不超过 30位 */
    @NotBlank(message = "美团订单号不能为空")
    private String mtOrderNo;

    /** 充值账号，即手机号 */
    @NotBlank(message = "充值账号不能为空")
    @Mobile(message = "充值账号必须是手机号")
    private String account;

    /**
     * 合约价，美团与供应商约定的售价，单位(元)
     * <p>
     * 199.82
     */
    @NotBlank(message = "合约价不能为空")
    @Money(message = "合约价必须是货币格式")
    private String contractPrice;

    /** 商品编码(供应商提供) */
    @NotBlank(message = "商品编码不能为空")
    private String productCode;

}
